package com.huizu.common.utils;

/**
 * @Author: pjl
 * @Date: 2024/10/15
 * @ClassName: PassWordVerifyUtil
 * @Description: 密码校验
 */
public class PassWordVerifyUtil {

    /**
     * 由6-30位的英文字母、数字和特殊字符组成，必须包含数字、小写字母和大写字母
     * @param password
     * @return
     */
    public static boolean isValidPassword(String password) {
//        String passwordRegex = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[^a-zA-Z0-9]).{6,30}$";
//        return password.matches(passwordRegex);

        // 密码长度必须在6到30位之间
        if (password == null || password.length() < 6 || password.length() > 30) {
            return false;
        }

        // 必须包含数字
        if (!password.matches(".*\\d.*")) {
            return false;
        }

        // 必须包含小写字母
        if (!password.matches(".*[a-z].*")) {
            return false;
        }

        // 必须包含大写字母
        if (!password.matches(".*[A-Z].*")) {
            return false;
        }

        // 如果包含特殊字符，则进行校验
//        if (!password.matches(".*[!@#$%^&*(),.?\":{}|<>].*")) {
//            return false;
//        }

        // 所有校验通过
        return true;
    }
}
